#ifndef _PerlinNoiseTexture_H_
#define _PerlinNoiseTexture_H_

#pragma once
#include "Texture.h"

class PerlinNoiseTexture : public Texture {
private:
	shared_ptr<Material> black, white;
	
public:
	PerlinNoiseTexture(shared_ptr<Material> black, shared_ptr<Material> white, const Vector3 &scale = Vector3(1, 1, 1));
	PerlinNoiseTexture(const Vector3 &scale = Vector3(1, 1, 1));
	~PerlinNoiseTexture() {}
	
	Color shade(const Scene *scene, const Ray &ray, const IntersectResult &intersect, const TraceState & traceState) const;
};

#endif // _PerlinNoiseTexture_H_